package com.srmt.user.exception;

/**
 * 无效标识符异常
 * 当提供的电话号码或邮箱地址格式不符合规范时抛出
 *
 * @author SRMT Development Team
 * @since 1.7.0
 */
public class InvalidIdentifierException extends UserServiceException {

    private final String identifier;
    private final String identifierType;

    /**
     * 构造函数
     *
     * @param identifier 无效的标识符
     */
    public InvalidIdentifierException(String identifier) {
        super("无效的标识符格式: " + identifier);
        this.identifier = identifier;
        this.identifierType = "UNKNOWN";
    }

    /**
     * 构造函数，指定标识符类型
     *
     * @param identifier 无效的标识符
     * @param identifierType 标识符类型（PHONE、EMAIL等）
     */
    public InvalidIdentifierException(String identifier, String identifierType) {
        super(String.format("无效的%s格式: %s", identifierType, identifier));
        this.identifier = identifier;
        this.identifierType = identifierType;
    }

    /**
     * 构造函数，自定义错误消息
     *
     * @param message 错误消息
     * @param identifier 无效的标识符
     * @param identifierType 标识符类型
     */
    public InvalidIdentifierException(String message, String identifier, String identifierType) {
        super(message);
        this.identifier = identifier;
        this.identifierType = identifierType;
    }

    /**
     * 获取无效的标识符
     *
     * @return 标识符字符串
     */
    public String getIdentifier() {
        return identifier;
    }

    /**
     * 获取标识符类型
     *
     * @return 标识符类型
     */
    public String getIdentifierType() {
        return identifierType;
    }
}
